[package]
name = "capp"
version = "0.3.5"
edition = "2021"
license = "MIT"
authors = ["oiwn"]
description = "Common things i use to build Rust CLI tools for web crawlers."
homepage = "https://github.com/oiwn/capp-rs"
repository = "https://github.com/oiwn/capp-rs"
readme = "README.md"
keywords = ["mini-celery", "async", "executor"]
categories = ["asynchronous", "web-programming", "concurrency"]
exclude = [
    "tmp/*",
    # "benches/*",
    "html/*",
    ".github/*",
    ".gitignore",
    ".tmuxp.yaml",
    "notes.org"
]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
async-trait = { version = "0.1" }
backoff = { version = "0.4", optional = true, features = ["tokio"] }
derive_builder = { version = "0.20" }
reqwest = { version = "0.12", features = ["gzip", "rustls-tls"], optional = true }
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0" }
serde_yaml = "0.9"
thiserror = { version = "1.0" }
tokio = { version = "1.37", features = ["full"] }
uuid = { version = "1.8", features = ["v4", "serde"] }
rustis = { version = "0.13", features = ["tokio-runtime"], optional = true }
once_cell = "1.19"
tracing = "0.1"
tracing-subscriber = "0.3"
anyhow = "1.0"
tracing-futures = "0.2"

[dev-dependencies]
capp = { path = ".", features = ["http", "healthcheck", "redis"] }
hyper = { version = "1.3", features = ["server", "http1"] }
http-body-util = "0.1"
bytes = "1.6"
pin-project-lite = "0.2"
dotenvy = "0.15"
scraper = "0.19"
rand = "0.8"
md5 = "0.7.0"
url = "2.5.0"
base64 = "0.22.1"

[features]
http = ["dep:backoff", "dep:reqwest"]
healthcheck = ["dep:reqwest"]
redis = ["dep:rustis"]
